package com.xrj4j.service;

import com.xrj4j.common.ResponseResult;
import com.xrj4j.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xrj4j.dto.EmailLoginDTO;
import com.xrj4j.dto.EmailRegisterDTO;
import com.xrj4j.dto.QQLoginDTO;
import com.xrj4j.dto.UserInfoDTO;

import java.util.Map;

/**
 * 服务类
 */
public interface UserInfoService extends IService<UserInfo> {


    /**
     * 邮箱注册
     */
    ResponseResult emailRegister(EmailRegisterDTO emailRegisterDTO);

    /**
     * 邮箱登录
     */
    ResponseResult emailLogin(EmailLoginDTO emailLoginDTO);

    /**
     * 修改密码
     */
    ResponseResult updatePassword(EmailRegisterDTO emailRegisterDTO);

    /**
     * qq登录
     */
    ResponseResult qqLogin(QQLoginDTO qqLoginDTO);

    /**
     * 微博登录
     */
    ResponseResult weiboLogin(String code);

    /**
     * 码云登录
     */
    ResponseResult giteeLogin(String code);

    /**
     * 发送邮箱验证码
     */
    ResponseResult sendEmailCode(String email);

    /**
     * 用户绑定邮箱
     */
    ResponseResult publicBindEmail(UserInfoDTO vo);

    /**
     * 获取微信登录二维码
     */
    ResponseResult wxQr();

    /**
     * 微信授权登录回调地址
     */
    Map<String, Object> wechatLogin(String body);

    /**
     * 判断用户是否微信登录成功
     *
     * @param tempUserId 用户临时id
     */
    ResponseResult wxIsLogin(String tempUserId);

    /**
     * 获取用户信息
     */
    ResponseResult publicSelectUserInfo();

    /**
     * 修改用户信息
     */
    ResponseResult publicUpdateUser(UserInfoDTO vo);
}
